<?php
/**
 * OrderComment
 *
 * Класс OrderComment обрабатывает данные, связанные с комментариями по заказам
 *
 */
class OrderComment extends ActiveRecord {
	protected $allowAttachSize = 5;
	protected $tableName = 'order_comment';
	public $pkName = 'ID_order_comment';
	
	protected $arrSettings = array(
			'created_at' => true,  // в БД храним время создания
			'author' => true			// в БД храним автора (ID_user)
	);
	
	public $validatesLengthOf = array(
			'text' => array('minimum' => 1, 'message' => 'Нужно что-нибудь написать')
	);
	
	/**
	 * Метод сохранения аттача комментария заказа
	 * 
	 */
	public function saveAttach () {
		$blacklist = array(".php",".php3", ".php4");
		$fileArray = $_FILES['comment-attach'];
		
		if($fileArray['size'] / (1024 * 1024) > $this->allowAttachSize) exit();	// Поправить!!
		
		// Проверяем разрешение  загружаемого файла
		foreach ($blacklist as $item) {
			if(preg_match('#' . $item . '$#i', $fileArray['name'])) {
				echo "Нас ломают!";
				exit;
			}
		}
		
		$uploadDir = FILES . 'order-comment-attach/' . $this->id . '/';
		if (!is_dir($uploadDir)) if (!mkdir($uploadDir)) throw new Exception('Can not create a directory for uploads.');
		
		// Обрабатываем имя файла
		$fileName = Service_Function::getFileNameForSave($fileArray['name']);
		
		$uploadFile = $uploadDir . $fileName;
		if (copy($fileArray['tmp_name'], $uploadFile)) {
			$this->updateField('attach_file_name', $fileName);
			return true;
		}
		else return false;
	}
}
?>